package hust.rpc.service;

import hust.rpc.annotation.Service;
import hust.rpc.constants.Constants;
import hust.rpc.pojo.Host;

import java.util.List;

/**
 * 上线节点信息,服务提供者调用注册中心
 */
@Service(Constants.PROVIDER)
public interface ProviderService {

    /**
     * 服务提供方注册服务
     *
     * @param host     提供方绑定端口信息
     * @param services 服务接口集合
     */
    void register(Host host, List<String> services);

    /**
     * 服务提供方取消注册(大多数情况下注册中心自行调用,少数情况服务提供方销毁时调用)
     *
     * @param host 提供方绑定端口信息
     */
    void deRegister(Host host);
}
